Newer
Older
taehui / qwilight-fe / src / app / [language] / note / components / SrcInput.tsx
@Taehui Taehui on 17 Mar 1 KB 2024-03-17 오후 3:50
import { useNoteStore } from "@/state/Stores";
import { useTranslations } from "next-intl";
import { useEffect, useState } from "react";
import {
  Dropdown,
  DropdownItem,
  DropdownMenu,
  DropdownToggle,
} from "reactstrap";
import { useIntParam } from "taehui-ts/fe-utilities";

export default function SrcInput() {
  const { setLastSrc, setWantAvatar } = useNoteStore();
  const [isSrcOpened, setSrcOpened] = useState(false);
  const { param: src, setParam: setSrc } = useIntParam("src", 0);

  const t = useTranslations();

  const onInput = (src: number) => () => {
    setSrc(src);
  };

  useEffect(() => {
    setLastSrc(src);
  }, [setLastSrc, src]);

  return (
    <Dropdown
      isOpen={isSrcOpened}
      toggle={() => {
        setSrcOpened((prevState) => !prevState);
      }}
    >
      <DropdownToggle caret>{t(`toSrc${src}`)}</DropdownToggle>
      <DropdownMenu>
        <DropdownItem onClick={onInput(0)}>{t("toSrc0")}</DropdownItem>
        <DropdownItem onClick={onInput(1)}>{t("toSrc1")}</DropdownItem>
        <DropdownItem onClick={onInput(2)}>{t("toSrc2")}</DropdownItem>
        <DropdownItem onClick={onInput(3)}>{t("toSrc3")}</DropdownItem>
      </DropdownMenu>
    </Dropdown>
  );
}